package models

import (
	"time"
)

type Users struct {
	Id        int32     `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	Mobile    string    `gorm:"column:mobile;type:char(11);default:NULL;" json:"mobile"`
	UserName  string    `gorm:"column:user_name;type:varchar(20);comment:用户名;default:NULL;" json:"user_name"` // 用户名
	NickName  string    `gorm:"column:nick_name;type:varchar(20);comment:昵称;default:NULL;" json:"nick_name"`  // 昵称
	Sex       string    `gorm:"column:sex;type:varchar(5);default:NULL;" json:"sex"`
	Mileage   string    `gorm:"column:mileage;type:varchar(10);comment:里程;default:NULL;" json:"mileage"` // 里程
	CreatedAt time.Time `gorm:"column:created_at;type:datetime(3);default:NULL;" json:"created_at"`
	UpdateAt  time.Time `gorm:"column:update_at;type:datetime(3);default:NULL;" json:"update_at"`
	DeletedAt time.Time `gorm:"column:deleted_at;type:datetime(3);default:NULL;" json:"deleted_at"`
}

type LxhOrder struct {
	Id            int32     `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	OrderCode     string    `gorm:"column:order_code;type:varchar(50);comment:订单编号;default:NULL;" json:"order_code"`            // 订单编号
	Amount        float64   `gorm:"column:amount;type:decimal(10, 2);comment:总价;default:NULL;" json:"amount"`                   // 总价
	OrderStatus   string    `gorm:"column:order_status;type:varchar(10);comment:订单状态;default:NULL;" json:"order_status"`        // 订单状态
	PassengerId   int32     `gorm:"column:passenger_id;type:int;comment:乘客ID;default:NULL;" json:"passenger_id"`                // 乘客ID
	StartAddr     string    `gorm:"column:start_addr;type:varchar(50);comment:起始地;default:NULL;" json:"start_addr"`             // 起始地
	EndEnd        string    `gorm:"column:end_end;type:varchar(50);comment:目的地;default:NULL;" json:"end_end"`                   // 目的地
	Driver        int32     `gorm:"column:driver;type:int;comment:司机ID;default:NULL;" json:"driver"`                            // 司机ID
	StartTime     time.Time `gorm:"column:start_time;type:datetime;comment:开始时间;default:NULL;" json:"start_time"`               // 开始时间
	EndTime       time.Time `gorm:"column:end_time;type:datetime;comment:结束时间;default:NULL;" json:"end_time"`                   // 结束时间
	ConfirmBy     string    `gorm:"column:confirm_by;type:varchar(5);comment:取消方（乘客/司机）;default:NULL;" json:"confirm_by"`       // 取消方（乘客/司机）
	ConfirmPerson int32     `gorm:"column:confirm_person;type:int;comment:取消人;default:NULL;" json:"confirm_person"`             // 取消人
	ConfirmReason string    `gorm:"column:confirm_reason;type:varchar(50);comment:取消原因;default:NULL;" json:"confirm_reason"`    // 取消原因
	ConfirmRemark string    `gorm:"column:confirm_remark;type:varchar(50);comment:取消备注;default:NULL;" json:"confirm_remark"`    // 取消备注
	PayStatus     string    `gorm:"column:pay_status;type:varchar(20);comment:支付状态;default:NULL;" json:"pay_status"`            // 支付状态
	PayType       string    `gorm:"column:pay_type;type:varchar(20);comment:支付方式;default:NULL;" json:"pay_type"`                // 支付方式
	OrderType     string    `gorm:"column:order_type;type:varchar(20);comment:订单状态（快车订单/预约订单）;default:NULL;" json:"order_type"` // 订单状态（快车订单/预约订单）
}
type LxhDriverCheck struct {
	Id                   int32  `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	IdCardFileId         string `gorm:"column:id_card_file_id;type:varchar(100);comment:身份证;default:NULL;" json:"id_card_file_id"`                 // 身份证
	DriverLicenseFileId  string `gorm:"column:driver_license_file_id;type:varchar(100);comment:驾照;default:NULL;" json:"driver_license_file_id"`    // 驾照
	DrivingLicenseFileId string `gorm:"column:driving_license_file_id;type:varchar(100);comment:行驶证;default:NULL;" json:"driving_license_file_id"` // 行驶证
	AvatorFileId         string `gorm:"column:avator_file_id;type:varchar(100);comment:司机头像;default:NULL;" json:"avator_file_id"`                  // 司机头像
	CheckStatus          string `gorm:"column:check_status;type:varchar(5);comment:审核状态;default:0;" json:"check_status"`                           // 审核状态
	Remark               string `gorm:"column:remark;type:varchar(50);comment:备注;default:NULL;" json:"remark"`                                     // 备注
}

func (u *LxhOrder) TableName() string {
	return "lxh_order"
}
func (u *LxhDriverCheck) TableName() string {
	return "lxh_driver_check"
}

type Comments struct {
	Id       int32  `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	UserId   int32  `gorm:"column:user_id;type:int;default:NULL;" json:"user_id"`
	DriverId int32  `gorm:"column:driver_id;type:int;default:NULL;" json:"driver_id"`
	Comment  string `gorm:"column:comment;type:varchar(50);default:NULL;" json:"comment"`
}
